package twelfth.操作文件的类_File;

import java.io.File;

public class 范例_列出指定目录的全部内容 {
    public static void main(String[] args) {
        File file = new File("D:"+File.separator+"VMs"+File.separator);//操作路径
        print(file);
    }
    public static void print(File file){    //递归调用此方法
        if(file!=null){     //增加一个检查机制
            if(file.isDirectory()){ //判断是否是目录
                /**
                 * 首先 a.txt这种肯定不是目录
                 * 但是包含a.txt的文件夹 他是目录
                 */
                File[] files = file.listFiles();    //如果是目录，则列出全部内容
                if(files!=null){
                    /*for(File f:files){
                        System.out.println(f);
                    }*/
                    for (int i = 0; i <files.length ; i++) {
                        print(files[i]);    //继续列出内容
                    }
                }
            }else{
                System.out.println(file);//如果不是目录，直接打印路径信息
                /**
                 * 意思就是 遇到了文件之后 file.isDirectory() 返回false
                 * 所以就会直接打印路径信息
                 */
            }
        }
    }
}
/**
 * 以上的程序采用递归调用的方式，不断的判断传进来的路径是不是目录，如果是目录，则继续列出子文件夹，如果不是则直接打印路径名称
 */